Amazon DynamoDB
from AWSが提供するデータベースサービス一覧 2024/7/12
質問.iconAmazon DynamoDBとは?
Key-Value型のNoSQLデータベース。容量が無制限のためデータ収集など大容量データの蓄積に利用
既存のデータ構造に変更を加えることなく新しい項目を追加することができる。データを結合して結果を得たり、分析するような利用方法よりも、上例のように単一のデータを格納・取得するというシンプルな利用に向いている
シンプルな構造であるため、パフォーマンスは非常に高く、ピーク時には秒間2000万件のリクエストに対応している
質問.iconAmazon DynamoDBの特徴
1.icon高可用性
3つのAZにデータを分散して保存されるため、単一障害点を持たず高い可用性を誇る
2.iconスループットの維持
各AZのデータはパーティションという単位で分散して保存されている。データ量が一箇所に集中しすぎない状態をつくり、分散することで、探索工数を下げ、スループットを保てる状態にしている
参考.iconパーティションとデータ分散 - Amazon DynamoDB
3.iconデータ参照時の一貫性
4.icon自動スケール
質問.iconDynamoDBの機能
1.iconDynamoDB Accelerator (DAX)
DynamoDBのインメモリのキャッシュクラスタ。これを活用することで、ミリ秒だったレスポンスをマイクロ秒レベルのパフォーマンスにまで向上させることができる
2.icon読み取りキャパシティユニット(RCU:Read Capacity Unit)
n秒あたりにmKB以下のデータの読み込みができるといったもの。RCUの自動スケーリングを設定すればアプリケーション側に影響を与えずに多くのリクエストに対応できるようになる。
3.iconバックアップ機能
オンデマンドバックアップ
ユーザーが任意のタイミングで作成するバックアップのこと
自動バックアップ
ポイントタイムリカバリ(PITR)を有効にし、差分バックアップが定期的に自動で取得される
4.icon更新ログ保存機能(DynamoDB Stream)
テーブルに対して行われた直近24時間の変更(追加や更新、削除)をログに保存する機能
ストリームを参照することによって、いつ誰がどのようにテーブルを更新したかがわかる
ログにはアプリケーションがリアルタイムにアクセスできるため、変更内容に応じて処理を組み込める
例えば
ログを監視し、問題のある処理があった場合はアラートを上げさせる
プロフィール画像を更新したらフレンドに通知させる
非同期で動作するため、ストリームを有効にしても元のテーブルのパフォーマンスには影響を与えない
5.iconTime To Live(TTL)機能
特定の時点で自動的にデータ項目を削除する機能
項目にTTL属性を設定することで、その時刻が来たときにDynamoDBが自動的に項目を削除する
データのライフサイクル管理が簡素化され、不要なデータによるストレージコストの増加を防ぐ
6.iconS3へのエクスポート
既存のテーブルデータをニニのS3バケットに直接エクスポートする機能が提供されている
対象のテーブルに設定されたRCUを消費せず、テーブルの可用性やパフォーマンスにも影響を及ぼさないメリットがある
なぜ?
質問.iconDynamoDBは容量が無制限とあるが、どのようにしてその仕組みを実現しているのか?